import pandas as pd
df = pd.read_excel('Тестовое задание Аналитик Данных.xlsx')
df = df[['Идентификатор','Группа','Подавал заявку на кредит','Получил одобрение на кредит','Оформил Кредит','Сумма кредита']]
df = df.fillna(0)
df
| Идентификатор | Группа | Подавал заявку на кредит | Получил одобрение на кредит | Оформил Кредит | Сумма кредита | |
|---|---|---|---|---|---|---|
| 0 | 18602163.0 | Сегмент A | 1.0 | 1.0 | 1.0 | 100000.0 |
| 1 | 18615389.0 | Сегмент A | 1.0 | 1.0 | 1.0 | 100000.0 |
| 2 | 18628615.0 | Сегмент A | 1.0 | 1.0 | 1.0 | 100000.0 |
| 3 | 18641841.0 | Сегмент A | 1.0 | 1.0 | 1.0 | 100000.0 |
| 4 | 18655067.0 | Сегмент A | 1.0 | 1.0 | 1.0 | 100000.0 |
| ... | ... | ... | ... | ... | ... | ... |
| 14995 | 89295133.0 | Сегмент C | 0.0 | 0.0 | 0.0 | 0.0 |
| 14996 | 89308359.0 | Сегмент C | 0.0 | 0.0 | 0.0 | 0.0 |
| 14997 | 89321585.0 | Сегмент C | 0.0 | 0.0 | 0.0 | 0.0 |
| 14998 | 89334811.0 | Сегмент C | 0.0 | 0.0 | 0.0 | 0.0 |
| 14999 | 89348037.0 | Сегмент C | 0.0 | 0.0 | 0.0 | 0.0 |
15000 rows × 6 columns
group_by = df.groupby('Группа')[['Подавал заявку на кредит','Получил одобрение на кредит','Оформил Кредит','Сумма кредита']].sum()
group_by
| Подавал заявку на кредит | Получил одобрение на кредит | Оформил Кредит | Сумма кредита | |
|---|---|---|---|---|
| Группа | ||||
| Сегмент A | 750.0 | 450.0 | 240.0 | 24000000.0 |
| Сегмент B | 500.0 | 410.0 | 230.0 | 34500000.0 |
| Сегмент C | 900.0 | 300.0 | 230.0 | 23000000.0 |
Подача заявки на кредит: Этот этап позволяет оценить интерес клиентов к кредиту. Вы можете проанализировать, сколько клиентов из каждой группы подали заявку на кредит. Если одна из групп существенно чаще подаёт заявки, это может указывать на больший интерес к кредиту в этой группе.
import pandas as pd
import matplotlib.pyplot as plt
group_counts = df['Группа'].value_counts()
# Построение столбчатой диаграммы
plt.figure(figsize=(15, 8)) # Размер графика
plt.bar(group_counts.index, group_counts.values, color='skyblue')
# Добавление процентных значений над столбцами
total_records = len(df)
for i, count in enumerate(group_counts):
percentage = (count / total_records) * 100
plt.text(i, count + 5, f'{percentage:.2f}%', ha='center')
# Настройки графика
plt.xlabel('Группа')
plt.ylabel('Количество')
plt.title('Количество записей в каждой группе с процентным отношением')
plt.xticks(rotation=45) # Поворот меток по оси x для лучшей читаемости
# Отображение графика
plt.show()
Получение одобрения на кредит: Здесь важно оценить, какая доля клиентов из каждой группы получила одобрение на кредит. Если одна из групп имеет более высокий процент одобрений, это может указывать на более высокую кредитоспособность этой группы.
group_by['Процент одобрения'] = (group_by['Получил одобрение на кредит'] / group_by['Подавал заявку на кредит']) * 100
group_by = group_by.reset_index(False)
group_by
| index | Группа | Подавал заявку на кредит | Получил одобрение на кредит | Оформил Кредит | Сумма кредита | Процент одобрения | |
|---|---|---|---|---|---|---|---|
| 0 | 0 | Сегмент A | 750.0 | 450.0 | 240.0 | 24000000.0 | 60.000000 |
| 1 | 1 | Сегмент B | 500.0 | 410.0 | 230.0 | 34500000.0 | 82.000000 |
| 2 | 2 | Сегмент C | 900.0 | 300.0 | 230.0 | 23000000.0 | 33.333333 |
import plotly.express as px
fig = px.pie(group_by, names='Группа', values='Процент одобрения', title='Процент одобрения по категориям')
fig.show()
Большие суммы могут быть индикатором лучшей финансовой устойчивости, но также могут повышать риски для кредитора.
df_filtered = df[(df['Получил одобрение на кредит'] == 1) & (df['Сумма кредита'] != 0 )][['Группа','Сумма кредита']]
mean = df_filtered.groupby('Группа')['Сумма кредита'].mean().reset_index()
mean
| Группа | Сумма кредита | |
|---|---|---|
| 0 | Сегмент A | 100000.0 |
| 1 | Сегмент B | 150000.0 |
| 2 | Сегмент C | 100000.0 |
fig = px.bar(mean, x='Группа', y='Сумма кредита', title='Средняя сумма кредита')
fig.show()